<?php

function critere_toutesarchives($idb, &$boucles, $crit) {
	// géré par pre_boucle
}

function periode_precedante($periode) {
	switch (lire_config('archives_auto/type','anneescolaire')) {
		case 'anneescolaire':
			list($debut, $fin) = preg_split("~/~",$periode) ;
	       		$debut-- ; $fin-- ;
			return "$debut/$fin" ;	
			break;
		case 'anneecivile':
			return $periode-1 ;
			break;
		case 'mois':
			list($mois,$annee) = preg_split("~/~", $periode) ;
			$mois-- ;
			if ($mois<0) {
				$mois = 12 ;
				$annee-- ;
			}
			return "$mois/$annee" ;
			break;
		case 'bimestre':
			list($mois,$annee) = preg_split("~/~", $periode) ;
			$mois -= 2 ; ;
			if ($mois<0) {
				$mois += 12 ;
				$annee-- ;
			}
			return "$mois/$annee" ;
			break;
		case 'trimestre':
			list($mois,$annee) = preg_split("~/~", $periode) ;
			$mois -= 3 ; ;
			if ($mois<0) {
				$mois += 12 ;
				$annee-- ;
			}
			return "$mois/$annee" ;
			break;
		case 'semestre':
			list($mois,$annee) = preg_split("~/~", $periode) ;
			$mois -= 6 ; ;
			if ($mois<0) {
				$mois += 12 ;
				$annee-- ;
			}
			return "$mois/$annee" ;
			break;
		case 'annee':
			list($mois,$annee) = preg_split("~/~", $periode) ;
			$annee-- ;
			return "$mois/$annee" ;
			break;
	}
}
function periode_suivante($periode,$force_periode_valide=false) {
	$_annee = date('Y') ;
	$_mois = date('m') ;
	switch (lire_config('archives_auto/type','anneescolaire')) {
		case 'anneescolaire':
			list($debut, $fin) = preg_split("~/~",$periode) ;
	       		$debut++ ; $fin++ ;
			if ($force_periode_valide || (($fin < $_annee) || (($fin == $_annee) && ($_mois > 7) ))) {
				return "$debut/$fin" ;	
			}
			break;
		case'anneecivile':
			$periode++ ;
			if ($force_periode_valide || ($periode<$_annee)) {
				return $periode ;
			}
			break;
		case 'mois':
			list($mois,$annee) = preg_split("~/~", $periode) ;
			$mois++ ;
			if ($mois>12) {
				$mois = 1 ;
				$annee++ ;
			}
			if ($force_periode_valide || (($annee<$_annee) || ( ($annee == $_annee) && ($mois < $_mois) ))) {
				return "$mois/$annee" ;
			}
			break;
		case 'bimestre':
			list($mois,$annee) = preg_split("~/~", $periode) ;
			$mois += 2 ; ;
			if ($mois>12) {
				$mois -= 12 ;
				$annee++ ;
			}
			if ($force_periode_valide || (($annee<$_annee) || ( ($annee == $_annee) && ($mois+1 < $_mois) ))) {
				return "$mois/$annee" ;
			}
			break;
		case 'trimestre':
			list($mois,$annee) = preg_split("~/~", $periode) ;
			$mois += 3 ; ;
			if ($mois>12) {
				$mois -= 12 ;
				$annee++ ;
			}
			if ($force_periode_valide || (($annee<$_annee) || ( ($annee == $_annee) && ($mois+2 < $_mois) ))) {
				return "$mois/$annee" ;
			}
			break;
		case 'semestre':
			list($mois,$annee) = preg_split("~/~", $periode) ;
			$mois += 6 ; ;
			if ($mois>12) {
				$mois -= 12 ;
				$annee++ ;
			}
			if ($force_periode_valide || (($annee<$_annee) || ( ($annee == $_annee) && ($mois+5 < $_mois) ))) {
				return "$mois/$annee" ;
			}
			break;
		case 'annee':
			list($mois,$annee) = preg_split("~/~", $periode) ;
			$annee++ ;
			if ($force_periode_valide || (($annee<$_annee) || ( ($annee == $_annee) && ($mois+11 < $_mois) ))) {
				return "$mois/$annee" ;
			}
			break;
	}
	return '' ;
}


function debut_periode($periode) {
	switch (lire_config('archives_auto/type','anneescolaire')) {
		case 'anneescolaire':
			list($debut, $fin) = preg_split("~/~",$periode) ;
			return "$debut-08-01 00:00:00" ;	
			break;
		case 'anneecivile':
			return "$periode-01-01 00:00:00" ;
			break;
		case 'mois':
			list($mois,$annee) = preg_split("~/~", $periode) ;
			return "$annee-$mois-01 00:00:00" ;
			break;
		case 'bimestre':
			list($mois,$annee) = preg_split("~/~", $periode) ;
			return "$annee-$mois-01 00:00:00" ;
			break;
		case 'trimestre':
			list($mois,$annee) = preg_split("~/~", $periode) ;
			return "$annee-$mois-01 00:00:00" ;
			break;
		case 'semestre':
			list($mois,$annee) = preg_split("~/~", $periode) ;
			return "$annee-$mois-01 00:00:00" ;
			break;
		case 'annee':
			list($mois,$annee) = preg_split("~/~", $periode) ;
			return "$annee-$mois-01 00:00:00" ;
			break;
	}
}

function fin_periode($periode) {
	return debut_periode(periode_suivante($periode,true)) ;
}

function periode($date='') {
	if ($date && preg_match("~^(\d+)-(\d+)-(\d+)\s+(.*)$", $date, $match)) {
		$annee = $match[1] ;
		$mois = $match[2] ;
	} else {
		$annee = date('Y') ;
		$mois = date('m') ;
	}
	switch (lire_config('archives_auto/type','anneescolaire')) {
		case 'anneescolaire':
			if ($mois>7) {
				return $annee.'/'.($annee+1) ;
			} else {
				return ($annee-1).'/'.$annee ;
			}
			break;
		case 'anneecivile':
			return $annee ;
			break;
		case 'mois':
			return $mois.'/'.$annee ;
			break;
		case 'bimestre':
			return (intval($mois / 2) * 2).'/'.$annee ;
			break;
		case 'trimestre':
			return (intval($mois / 3) * 3).'/'.$annee ;
			break;
		case 'semestre':
			return (intval($mois / 6) * 6).'/'.$annee ;
			break;
		case 'annee':
			$mois = $mois-1 ;
			if ($mois==0) { $mois = 12 ; }
			return $mois.'/'.($annee-1) ;	
			break;
	}

}

function balise_PERIODE($p) {
	$date = interprete_argument_balise (1, $p);
	$p->code = "'".periode($date)."'" ;
	return $p ;
}

?>
